<?php include "./inc/conn.php";?><?php include "./inc/pubs.php";?>
<?php include "./inc/safe.php";?><?php 
$stime=microtime(true); //CONCAT_WS(
$ch = addslashes($_POST['name']);
$ed = addslashes($_POST['ww']);
$mi = addslashes($_POST['page']);
$sq = addslashes($_GET['Act']);
if(!stristr("|down|","|$sq|")){ //除了下载csv其他都utf-8编码
header("content-Type: text/html; charset=utf-8");
}
$ck = "{$ls}{$dn}---";
if($sq){
$os = $_COOKIE["ek"];
$fu = "./inc/conn_{$fa}_user.php";
$rl = af($fu,$os);$rd=$rl["word"];
if(!stristr("|ss|code|xe|ag|","|$sq|")){
$xo = $_COOKIE["nv"];
if(md5($rd.$iq.$os)!=$xo){
$sq = "ss"; //没登录先登录
}elseif($ov=="sqls" && !stristr("|site|ym|an|ba|","|$sq|")){
$sq = "sqls"; //数据库信息先填对
}else{
}
}
switch ($sq) {
case "site":
if(!$site) exit("参数获取失败！");
$ef = "<table cellspacing=\"0\"><caption><b>系统参数</b></caption>";
$ef .= "<thead><tr class=\"tt\"><td>字段调用</td><td width='36%'>参数</td><td>操作</td><td>提示或说明</td></tr></thead><tbody>";
foreach($site as $ti=>$val){
$pu = $uk[$ti];//stripcslashes
if(!$pu){
}else{
if(stristr("-bj-yp-tv-pe-rr-","-{$ti}-")){
 $nm = "<textarea cols=\"20\" rows=\"2\" id=\"{$ti}\">$val</textarea>";
}elseif(stristr("-dp-","-{$ti}-")){
 $nm = nb($pd,$ti,$val);
}elseif(stristr("-nd-","-{$ti}-")){
 $nm = nb($el,$ti,$val);
}else{
 $nm = "<input value=\"{$val}\" id=\"{$ti}\" class=\"cc\" type=\"text\" />";
}
if(stristr($nm,"disabled")){
 $buts ="&nbsp;";
}else{
$buts = "<input value=\"修改\" type=\"button\" class=\"ww\" onClick=\"return eq('an','{$ti}|');\" />";
}
$ef .= "<tr><td data-label='参数调用'>\$$ti</td><td data-label='参数值'>$nm</td><td data-label=''>$buts</td><td data-label='参数说明' class='l'>$pu</td></tr>\r\n";
}
}
$ef .= "</tbody></table>";
echo $ef;
break;

case "an":
foreach($site as $ti=>$val){
if($_POST[$ti]){
$ge = $site[$ti]; $mt="";
$ir = htmlspecialchars(Trim($_POST[$ti]));
if($ir=="") exit("未修改：参数{$ti}请填写一个值吧！");
if($ge==$ir) exit("未修改：参数{$ti}无变化！");
if(stristr("-ls-bj-yp-tv-pe-dp-","-{$ti}-")){
$mt = "\r\n注意：该参数的修改可能影响查询结果，请刷新后再使用查询功能!";
}
if(stristr("-ls-bj-yp-tv-pe-","-{$ti}-")){
$ir = str_replace(array("\r\n","\r","\n","\t"),"---",$ir);
if(!stristr("@".$ir,"@---")) exit("未修改：参数---开头结尾分开！");
if(!stristr($ir."@","---@")) exit("未修改：参数---开头结尾分开！");
if(!stristr($ir."","---")) exit("未修改：参数---开头结尾分开！");
}elseif(stristr("-ro-ee-ni-ou-dbport-","-{$ti}-")){
if($ir=="" || !is_numeric($ir)) exit("未修改：参数得是数字");
}elseif(stristr("-dp-","-{$ti}-")){
if(!stristr("-1-2-3-4-","-{$ir}-")) exit("未修改：参数不在允许范围");
}elseif(stristr("-dluser-","-{$ti}-")){
if(!filter_var($ir, FILTER_VALIDATE_EMAIL)) exit("未修改：参数得是邮件格式");
}elseif(stristr("-ut-","-{$ti}-")){
 exit("未修改：该参数不要修改!");
}elseif(stristr("-{$ti}-","-db")){
 exit("未修改：请直接修改inc/conn.php参数并删缓存!");
}else{
}
$site[$ti] = $ir;
file_put_contents($ig, json_encode($site));//JSON_UNESCAPED_UNICODE
echo "[{$ti}]修改[{$ge}]值为[{$ir}]".$mt;
}
}
break;

case "duan":
if(!$duan) exit("参数获取失败！");
$wi = "<p>如果字段发生改变或者需要全部重新设置：<input value=\"初始化\" id=\"xb\" type=\"button\" onClick=\"return bi();\" /></p>";
$ef = "<table cellspacing=\"0\"><caption><b>{$en}</b>字段别名</caption>";
$ef .= "<thead><tr class=\"tt\"><td>真实字段</td><td width='36%'>代替显示</td><td>操作</td><td>提示或说明</td></tr></thead><tbody>";
$gr=0;
foreach($duan as $ti=>$val){
$gr++;
if($ti=="error"){
$buts = "<br><input value=\"更改数据表\" type=\"button\" class=\"ww\" onClick=\"return eq('bt','it|');\" />";
$it = ai(); $it .= $buts;
on("<h3>数据表{$en}异常，请重新填写数据库表名称:</h3>".$it); exit();
}else{
$nm = "<input value=\"{$ti}\" id=\"o{$gr}\" class=\"cc\" type=\"hidden\" />";
$nm .= "<input value=\"{$val}\" id=\"i{$gr}\" class=\"cc\" type=\"text\" />";
$buts = "<input value=\"修改\" type=\"button\" class=\"ww\" onClick=\"return bc('ya','$gr');\" />";
$ef .= "<tr><td data-label='真实字段'>$ti</td><td data-label='代替显示'>$nm</td><td data-label=''>$buts</td><td data-label='参数说明' class='l'>留空不显示该字段</td></tr>\r\n";
}
}
$ef .= "</tbody></table>";
echo "<input value=\"\" id=\"qu\" type=\"hidden\" />";
echo "<input value=\"\" id=\"sm\" type=\"hidden\" />";
echo $ef . $wi;
break;

case "xb":
if(@unlink($rf)){exit("初始化字段别名成功!");}else{exit("初始化字段别名失败!");}
break;

case "ya":
$ge = addslashes($_POST["qu"]); $ir = addslashes($_POST["sm"]);
$re = $duan[$ge];
if($re==ir) exit("未修改：参数未变化!");
$duan[$ge] = $ir;
file_put_contents($rf, json_encode($duan));
echo "[{$re}]修改为[{$ir}]";
break;

case "ba":
$ba = <<<EOT

<h3>源码简介</h3>
查立得php+mysql直接搜现成数据库版(sqlmsoo)有后台<br>
约25KB代码(压缩包)实现1-3条件选一通用单表查询或搜索系统<br>
4模式：等于输入内容、包含输入内容、输入内容开始、输入内容结束。<br>
用户：设定多条件下拉选一查搜<br>
管理员：登录退出修改密码，可以修改13+系统参数！设置数据库信息！<br>
管理员：可为数据库各字段设置别名以更友好显示！<br>
管理员: 查看数据库内容并分页可搜索，无增改删功能(只查不改数据)！<br>
适合已有数据库(或能自己导入数据库)的用户填写参数即可快速公开查询。

<h3>使用须知</h3>
1. 不得用于法律法规不允许的用途；<br>
2. 保留署名权、发行权。必须保留网页版权信息(浏览器不显示的)；<br>

<h3>用途举例</h3>
用途举例(多条件选一精准查询)<br>
1、各种成绩查询、工资查询、物业水电费查询。<br>
2、录取查询、分班查询、分宿舍查询、座位查询。<br>
3、防伪查询、证书查询、员工信息查询等等。<br>
用途举例(多条件选一模糊搜索)<br>
1、小区人员、车辆快查，提高疫情通行效率。<br>
2、库存位置、员工信息、档案目录、图书位置及余量快查。<br>
3、产品参数快查、产品报价快查，售后网点快查。<br>
4、字典库比如技术员报错码查询。<br>
5、身份证、社保卡发放点查询身份证是否到本网点及位置快查。<br>
6、通讯录快查等更多个人资料库内部局域网快查。<br>
<h3>使用说明</h3>
开发环境：php 5.4/mysql5.6;建议环境：php 5.4+/mysql5.6+;php8未测<br>
管理访问：http://域名/文件夹/admin.php (安全:admin.php可以任意更名网址对应变化)<br>
账号admin@ewuyi.net密码253252545首次登录后台请自行修改掉！<br>
需要管理员登录后台配置数据库信息才能使用！
用户访问：http://域名/文件夹/<br>
务必确保：inc文件夹读写权限，会生成4个缓存配置文件哦;<br>
使用建议：建议作为查询条件的字段索引，可大大提高查询功能性能；建议开启opcache缓存功能。<br>

<h3>功能反馈</h3>
主页：http://www.chalide.com<br>
邮件：admin@12391.net<br>
手机：15058593138 （同微信号）<br>

EOT;
echo "<h1>关于查询</h1>";
on("".$ba);
break;

case "bt":
$ir = addslashes($_POST["it"]);
$re = $pubs["en"];
if($ir=="Null") exit("未修改：未选表格!");
if($re==ir) exit("未修改：参数未变化!");
$pubs["en"] = $ir;
file_put_contents($ne, json_encode($pubs));
if(@unlink($rf)){ }
echo "数据表[{$re}]修改为[{$ir}];\r\n注意系统设置和字段设置页面还需要同步去修改哦；";
break;

case "sqls":
if(!$pubs) exit("参数获取失败！");
$ef = "<table cellspacing=\"0\"><caption><b>数据库配置</b></caption>";
$ma = "<thead><tr class=\"tt\">";
$ef .= "{ma}<tbody><tr>\r\n";
$gr=0;$tc = ""; 
foreach($pubs as $we=>$val){
if(stristr("@".$we,"@db") || stristr("@".$we,"@en") ){
$gr++; $tc .= "{$we}|"; $ti=$tb[$we]."({$we})";
$ma .= "<td>$ti</td>\r\n";
$nm = "<input value=\"{$val}\" id=\"{$we}\" class=\"cc\" type=\"text\" />";
$ef .= "<td data-label='{$ti}'>$nm</td>\r\n";
}
}
$ma .= "<td>操作</td>\r\n</tr></thead>\r\n";
$buts = "<input value=\"修改\" type=\"button\" class=\"ww\" onClick=\"return eq('ym','{$tc}');\" />";
$ef .= "<td data-label=''>$buts</td></tr>\r\n";
$ef .= "</tbody></table>";
echo str_replace('{ma}',"".$ma,$ef);
if($ov=="sqls"){on("<span>请先正确填写数据库连接信息!</span><br>错误信息：".$dr);} 
break;

case "ym":
foreach($pubs as $we=>$val){ $$we=addslashes($_POST[$we]); $pubs[$we]=$$we;}
$conn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname, $dbport);
if (!$conn){ die("连接失败(请纠正后再提交):" . mysqli_connect_error()); }
file_put_contents($ne, json_encode($pubs));
$it = ai(); 
if(!stristr($it,">$en<")) {
$it .= "<br><input value=\"更改数据表\" type=\"button\" class=\"ww\" onClick=\"return eq('bt','it|');\" />";
on("<h3>设置的表格无效，请选择数据表:</h3>".$it);
}else{
exit("数据库信息修改成功!");
}
break;

case "ss"://登录输入
setcookie('ek',"ek",-time()+60*60*24*1,"/"); //1小时有效
setcookie('nv',"nv",-time()+60*60*24*1,"/"); //1小时有效
echo <<<EOT
<table cellspacing="0" class="table">
<caption><h3>请先登录才能操作</h3></caption>
<tbody>
<tr><td data-label="账号">
<input name="user" id="user" class="cc" type="text" placeholder="请输入账号" />
</td><td data-label="密码">
<input name="pass" id="pass" class="cc" type="password" placeholder="请输入密码"  />
</td><td data-label="登录">
<input name="Submit" type="button" value="立即登陆" class="ww" onClick="return eq('xe','user|pass');" />
</td></tr></tbody></table>
EOT;
break;

case "xe": //登陆执行
$user = $_POST["user"]; $pass = $_POST["pass"];
if(!filter_var($user, FILTER_VALIDATE_EMAIL)){exit("账号格式错误(电子邮件格式)");}
if(!preg_match("/^[a-zA-Z0-9]{6,18}$/",$pass)){exit("密码格式错误(6-16位数字及字母组成)");}
$fu = "./inc/conn_{$fa}_user.php";
if($dluser!=$user && !file_exists($fu)) exit("账号或密码错误1!");
$xi=md5("Cha{$pass}li{$fa}im");
$rl = af($fu,$user);$of=$rl["word"];
if($xi != $of) exit("账号或密码错误2 !");
setcookie('ek',$user,time()+60*60*24*1,"/"); //24小时有效
setcookie('nv',md5($xi.$iq.$user),time()+60*60*24*1,"/"); //24小时有效
on("登录成功!你可以输入框输入内容查询并修改了!");
 break;

case "ag": //退出登录
setcookie('ek',"ek",-time()+60*60*24*1,"/"); //1小时有效
setcookie('nv',"nv",-time()+60*60*24*1,"/"); //1小时有效
on("退出成功!");
 break;

case "xi": //修改密码输入
echo <<<EOT
<table cellspacing="0" class="table"><tbody>
<caption><b>密码修改</b></caption><thead>
<tr>
<td data-label="账号">账号</td>
<td data-label="旧密码">旧密码</td>
<td data-label="新密码">新密码</td>
<td data-label="新密码">新密码</td>
<td data-label="修改">操作</td>
</tr>
</thead>
<tbody>
<tr><td data-label="账号">
<input name="user" id="user" class="cc" type="text" value="{$dluser}" disabled="value" />
</td><td data-label="旧密码">
<input name="pass" id="pass" class="cc" type="password" placeholder="请输入旧密码"  />
</td><td data-label="新密码">
<input name="xz" id="xz" class="cc" type="password" placeholder="请输入新密码"  />
</td><td data-label="新密码">
<input name="wo" id="wo" class="cc" type="password" placeholder="重复输新密码"  />
</td>
<td data-label="修改">
<input name="Submit" type="button" value="修改密码" class="ww" onClick="return eq('ra','user|pass|xz|wo');" />
</td></tr></tbody></table>
EOT;
break;

case "ra": //修改密码执行
$user = addslashes($_POST["user"]);
if(!filter_var($user, FILTER_VALIDATE_EMAIL)){exit("未修改：账号格式错误(电子邮件格式)");}
$fu = "./inc/conn_{$fa}_user.php";
if($dluser!=$user && !file_exists($fu)) exit("未修改：账号与实际不符1");
$ea = addslashes($_POST["pass"]);
$sn = addslashes($_POST["xz"]);
$na = addslashes($_POST["wo"]);
if(!preg_match("/^[a-zA-Z0-9]{6,18}$/",$sn)){exit("未修改：密码格式6-16位数字及字母组成");}
if($sn!=$na) exit("未修改：两次新密码不一致"); //
if($sn==$ea) exit("未修改：新旧密码未变!"); //
$sh=md5("Cha{$ea}li{$fa}im");
if($sh!=$rd) exit("未修改：旧密码错误"); //
ra($fu,$sn);
on("修改密码成功!");
break;

case "list": //正式查询
 $ts = addslashes($_POST['di']);
$pagesize = $ro;
if(stristr($ts,"请输入")) $ts="";
$gl = "select * from `{$en}`";
if($ts!="") $gl .= str_replace("{ts}",$ts,$py);
$result = mysqli_query($conn, $gl);
if (!$result) exit("请重新填写数据库表名称或者查询条件:".mysqli_error($conn));
$recs = $result->num_rows;
if($recs<1) exit("没有查询到 $ts 相关用户!");
$pagecount = bcdiv($recs+$pagesize-1,$pagesize,0); //算出总页数
if(!isset($mi) || !is_numeric($mi)) $mi = 1; //缺省为显示第一页
if($mi<1) $mi = 1; //如果页码比1小，则显示第一页
if($mi>$pagecount) $mi = 1; //如果页码比总页数大，则显示最后一页
$p = $mi * $pagesize + 1 - $pagesize -1;
if($p<0) $p = 0; //如果
$me=" $gl limit {$p}, {$pagesize}";
$list=mysqli_query($conn,$me);
if (!$list){echo "请重新填写数据库表名称或者查询条件:".mysqli_error($conn);}
echo "<div style=\"margin:0 auto;overflow-x:auto;width:99.99%;\">";
echo "\r\n<!--startprint-->\r\n<input id=\"page\" value=\"1\" type=\"hidden\">";
$su = "<input name=\"di\" type=\"text\" class=\"nn\" id=\"di\" placeholder=\"请输入{$dn}搜索表格{$en}\" value=\"$ts\"  onfocus=\"this.select();\" /><input name=\"S\" type=\"button\" class=\"ec\" value=\"搜索\" onclick=\"eq('list','di|');\">";
$am = "<table cellspacing=\"0\" class=\"table\" id=\"rk\" > \r\n<thead>";
$am .= "<caption>$su</caption>";
$gr=0;
foreach ($list as $ml ) {
$gr++;
if($gr=="1"){
$am .= "\r\n\r\n<tr class=\"tt\">\r\n";
$li=0;
foreach ($ml as $bo => $yu ) {
$li++; $am .= "<td><nobr>$bo</nobr></td>\r\n";
}
$am .= "</tr>\r\n</thead>\r\n";
$am .= "\r\n<tbody>\r\n";
echo $am;
}
$mg= "";$i=0;
echo "\r\n<tr>\r\n"; 
foreach ($ml as $bo => $yu ) {
$i++;
if(Trim($yu)==""){$yu = "-";} //空值情况
$uo = $yu; $fr++; $st=""; $et="";
echo "<td data-label=\"{$bo}\">$uo</td>\r\n"; 
}
echo "</tr>\r\n";
}
$li = $li;
if($gr<1){
exit("没有查询到[$di]相关信息哦");
}else{
echo "</tbody>\r\n";
if($pagecount>0){ //页码比0大，表示有数据
echo "<tr><td colspan=\"{$li}\">";
if($pagecount>$ni){ $er=$ni;}else{$er=$pagecount;}
for($ho=0;$ho<$er;$ho++){
$eg=$ho+1;
if("x".$mi=="x".$eg){
echo "第<span id=\"se\">$eg</span>页\r\n";
}else{
echo " <a href=\"#\" onClick=\"uo(2,{$eg})\" >$eg</a>\r\n";
}
}
echo '<!--<span>' . $pagesize . '</span>条/页-->';
echo '共<span>' . $pagecount . '</span>页<span>' . $recs . '</span>条结果';
echo '</td><tr>';
}
}
echo "</table>\r\n";
echo "\r\n<!--endprint-->\r\n</div>\r\n";
$etime=microtime(true);
$total=$etime-$stime;
echo "<!----页面执行时间：{$total} ]秒--->";
break;

default:
echo "[{$sq}]你想干嘛呢?";
}

exit();
}
?>
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0">
<meta name="apple-mobile-web-app-capable" content="yes" />
<title><?php echo $title;?></title>
<!-- 请保留以下信息:不显示的-->
<meta name="author" content="yujianyue, admin@ewuyi.net">
<meta name="copyright" content="www.12391.net">
<meta name="shuomingshu" content="http://soulide.96448.cn/readme.html">
<!-- 请保留以上信息:不显示的-->
<link href="./inc/css/style.css?t=<?php echo $lm;?>" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="./inc/js/us.js?t=<?php echo $lm;?>"></script>
</head>
<body onLoad="inst();">
<div class="html">
<div class="divs" id="divs">
<div id="head" class="head">
<div class="od"><?php echo $title;?></div>
<div class="back" id="xd">
<ul id="menu" class="center">
<li class="menu"><a href="javascript:rg();" class="btn">更多</a>
<dl class="list" id="list">
<li><a href="?t=t<?php echo uniqid();?>" class="d">刷新本页</a></li> 
<li><a href="./?t=t<?php echo uniqid();?>" class="d" target="_blank">访问前台</a></li>
<li><a href="javascript:eq('site','');" class="d">系统设置</a></li>
<li><a href="javascript:eq('sqls','');" class="d">数据库配置</a></li>
<li><a href="javascript:eq('duan','');" class="d">字段别名</a></li>
<li><a href="javascript:eq('list','');" class="d">数据浏览</a></li>
<li><a href="javascript:eq('xi','');" class="d">修改密码</a></li>
<li><a href="javascript:eq('ba','');" class="d">关于查询</a></li>
<li><a href="javascript:eq('ss','');" class="d">退出登录</a></li>
</dl></li>
</ul>
</div>
</div>
<div class="main" id="main">
<div class="ff" id="ff">
<span onclick="tk()" class="close">&times;</span>
<div id="nt"></div>
</div>
<div class="so_bus" id="wt">
<!---你的其他说明在这里添加：开始-->
<?php echo "<script>eq('site','');</script>";?>
<!--你的其他说明在这里添加：结束-->
</div>
</div>
<div class="boto" id="boto">
&copy;<?php echo date('Y');?>&nbsp; <a href="<?php echo $lu;?>" target="_blank"><?php echo $copyr;?></a>
</div>
<script type="text/javascript">
if ($("menu")!=null) {
var menu = $("menu").childNodes;
for (var i=0;i<menu.length;i++){
if (menu[i].className=="menu"){
menu[i].onmouseover = function(){ih(this,"block")};
menu[i].onmouseout = function(){ih(this,"none")};
}
}
}
function ih(obj,flag){
obj.getElementsByTagName("dl")[0].style.display = flag;
}
</script>
</div>
</div>
<div id="bg" class="modal" onclick="tk()"></div>
<!-- 版本信息 查立得php+mysql快查系统后台版 chalideKuaiCha -->
</body>
</html>